import { request } from 'umi';

/** 获取菜单列表 */
export async function getAllMenu() {
  return request(`/api/bui/menu/all`, {
    method: 'GET'
  });
}

/** 获取角色列表 */
export async function getRoleList(params: {
  current: number;
  pageSize: number;
  role_name?: string
  dept_code?: string;
}) {
  return request(`/api/bui/role/page/${params.current}/limt/${params.pageSize}`, {
    method: 'GET',
    params: {
      ...params
    }
  });
}

/** 弹窗获取角色列表 */
export async function getRoleListModal(params: {current?: number; pageSize?: number;}) {
  return request(`/api/bui/role/${params.current}/limt/${params.pageSize}`, {
    method: 'GET'
  });
}

/** 新建角色 */
export async function addRole(data: PERMISSIONSAPI.RoleListItem) {
  return request('/api/bui/role', {
    method: 'POST',
    data
  });
}

/** 更新角色 */
export async function updateRole(data: PERMISSIONSAPI.RoleListItem) {
  return request(`/api/bui/role/${data.role_id}`, {
    method: 'PATCH',
    data
  });
}

/** 删除角色 */
export async function removeRole(id: string | undefined) {
  return request(`/api/bui/role/${id}`, {
    method: 'DELETE'
  });
}

/** 获取角色信息 */
export async function getRoleDetail(id: string) {
  return request(`/api/bui/role/${id}`, {
    method: 'GET'
  });
}

/** 获取角色按钮列表 */
export async function getRoleActionList(id: string) {
  return request(`/api/bui/action/${id}`, {
    method: 'GET'
  });
}


/** 获取账号列表 */
export async function getAccountList(
  params: {
    current?: number;
    pageSize?: number;
    oper_name?: string;
    role_id?: string;
    status?: string;
    dept_level?: number
  }
) {
  return request(`/api/bui/oper/page/${params.current}/limit/${params.pageSize}`, {
    method: 'GET',
    params: {
      ...params
    }
  });
}

/** 新建账号 */
export async function addAccount(data: PERMISSIONSAPI.AccountListItem) {
  return request('/api/bui/oper', {
    method: 'POST',
    data
  });
}

/** 批量删除用户信息 */
export async function deleteAccountBatch(params: string[]) {
  return request('/api/bui/oper/batch', {
    method: 'DELETE',
    params
  });
}

/** 停用账号 */
export async function freezeAccount(ids: string[]) {
  return request(`/api/bui/oper/freeze`, {
    method: 'PATCH',
    data: {
      oper_id_list: ids
    }
  });
}

/** 启用账号 */
export async function enableAccount(ids: string[]) {
  return request(`/api/bui/oper/thaw`, {
    method: 'PATCH',
    data: {
      oper_id_list: ids
    }
  });
}

/**  更新账号 */
export async function updateAccount(data: PERMISSIONSAPI.AccountListItem) {
  return request(`/api/bui/oper/${data.oper_id}`, {
    method: 'PATCH',
    data
  });
}

/**  批量修改角色 */
export async function updateAccountRoleBatch(data: any) {
  return request(`/api/bui/oper/role/batch`, {
    method: 'PATCH',
    data
  });
}

// 查询科室列表
export async function getDeptList(data: any) {
  return request(`/api/bui/dept`, {
    data
  });
}

// 查询已存在业务科室列表
export async function getExistDept(data: any) {
  return request(`/api/bui/dept/1/limit/99999`, {
    data
  });
}
// 修改密码/重置密码
export async function updateOrResetPwd(params: any) {
  console.log('chongzhi', params)
  return request(`/api/bui/charge/${params.oper_type}/pwd`, {
    method: 'PATCH',
    data: params
  });
}
// 查询医院员工列表
export async function getOperList(data: any) {
  return request('/api/bui/staff/1/limit/99999', {
    params: data
  });
}

// 批量启用、停用账户
export async function batchStatus(params: any) {
  return request(`/api/bui/oper/${params.status === 'N' ? 'thaw' : 'freeze'}`, {
    method: 'PATCH',
    data: params
  });
}

// 批量新增账户
export async function batchAddAccount(params: any) {
  return request(`/api/bui/oper/batch`, {
    method: 'POST',
    data: params
  });
}
